Users of computer systems carry out two types of activities: tasks and projects. Tasks are lower-level user activities supported by a computer application. Sets of tasks, which can be carried out with an application, are determined by the functionality of an application. A user can select a task from the range of tasks supported by an application and then accomplish the task by performing a pre-determined operation or a sequence of operations. Examples of tasks are saving a file on a disc, sending an email message to a certain address, or changing the font of a certain part of a text document. Projects, on the other hand, are higher-level user activities, which can be described independently of the functionality of a computer application. Examples of projects are planning a trip, creating a digital photo album, or writing and submitting a paper to a conference. To carry out a project a user typically has to use several types of computer applications, set up and manage a project-specific work context (organize necessary resources to make them readily available when working on the project), and often coordinate computer and non-computer activities. For instance, to prepare and submit a conference paper a user may need a word processor to write the paper, an email program to follow announcements and updates, and a web browser to upload the paper. The paper can be located as a text file in a folder named “Conferences”, email messages can be stored in a mailbox also named “Conferences”, and the conference website bookmark can be placed into a bookmark folder, once again, named “Conferences”. In other words, users may have several information hierarchies within their virtual work environments—for example, a file system, a mailbox system, and a bookmark system,—which contain thematically related items but are independent from each other. To complete a project that utilizes several types of information objects, a user has to locate appropriate resources in each of these systems separately and find a way to coordinate them.
Standard computer systems, such as operating systems based on the desktop metaphor, including MS Windows and Mac OS, provide little support for managing project contexts, especially when projects span several applications and involve various types of information objects.
This problem has been recognized by designers of computer systems and a number of approaches to address this problem have been proposed. These approaches can be divided into three main categories: personal information management systems, dedicated project spaces, and non-hierarchical information space architectures.
Personal information management (PIM) systems, such as Microsoft Outlook, Palm Desktop, or ACT!, provide electronic versions of traditional organizer tools: calendars, address books, To Do lists, etc. A limitation of PIM tools is that management of activities is separated from management of work objects, such as files and applications, necessary to carry out these activities. When a project is described with a PIM system, the description does not support finding and arranging resources for this particular project.
Dedicated project spaces are spatially defined subsets of a virtual work environment, which provide contexts for individual projects or types of tasks. Creating a project folder is a common and the most basic way to create a dedicated project space. A number of systems have been developed to provide users with more elaborated spaces. The ROOMS system [4] allows a user to set up specialized workspaces (“rooms”) containing resources necessary to carry out different types of activities. The basic approach underlying the ROOMS system, that is, allocating virtual spaces to individual projects, where users can place tools and materials and thus build a special-purpose work environment, has been implemented in a number of more recent systems. The Task Gallery [10] provides users with task windows presented as canvas hanging on the walls of a virtual 3D gallery. Another example is Manufaktur, a collaborative 3D workspace intended to support design professionals in creating and maintaining the context of a task or project [11].
The main problem with dedicated project spaces is overhead. A user has to set up an environment for a project, arrange necessary resources, and regularly update them. When the project is finished, a user may have to clean up the space. The overhead associated with dedicated project spaces can be an obstacle to using a system, especially because a user typically has to invest time and effort before enjoying any benefits of using the system.
Overhead can be the main reason why many systems for creating dedicated project spaces have not become widely used. An exception is window managers for X, such as fvwm, which support multiple workspaces. However, these workspaces are intended for various types of activity, for instance handling email, reading news, or word processing, rather than individual projects [12].
Another common problem with dedicated project spaces is that they typically do not support certain types of information objects. For instance, if a user sets up a folder for a project he or she can get an easy access to applications and documents but not email messages or To Do lists related to the project. One of the few systems capable of integration, at least partial, of different types of information objects is ContactMap [9], which provides an information access through the structure of user's electronic communication. Since there is usually a mapping between patterns of communication and patterns of user activities in general, ContactMap, indirectly, can create project contexts integrating regular files with various types of electronic communications related to a project.
Both personal information management systems and dedicated project spaces have been developed as extensions of the traditional architecture of desktop environments, based on the hierarchical file system. Radically different approaches to creating project contexts have been employed in non-hierarchical architectures of information spaces, such as provided by Lifestreams [2, 3] and Presto [1].
The Lifestreams system organizes documents according to their chronological order. A user can create “sub-streams” of documents by entering selection criteria. This approach provides a simple and intuitive way to organizing and finding documents in personal electronic spaces. People often associate events with certain time periods; so knowing the approximate time of an event can help identify the fragment of the Lifestreams sequence, which contains the target document. The system also has the advantage of combining document space management with management of individual and group activities. For instance, a draft paper to be discussed by a group of co-authors can be placed at a certain time in the future, which can facilitate either access to necessary resources or coordination of group work.
Presto [1] has been developed within the framework of the Xerox PARC Placeless Documents project. The system provides an infrastructure that allows for flexible and dynamic generation of collections of documents by defining appropriate sets of attributes.
Both Lifestreams and Presto are intended to support creating complex information structures that match certain criteria and can include various types of resources. These structures are dynamically generated as a result of computation conducted on the whole collection of available information. Both systems can in principle be employed to create project-specific workspaces containing various types of information. However, to create a project context a user has to define formal criteria for selecting relevant information, which in many cases can be difficult or even impossible to do.
Users, especially in the beginning of a project, often have a vague idea of which attributes are important. The set of criteria according to which information should be considered relevant may develop over the course of working on a project. Besides, these criteria are likely to be implicit, and even if the criteria are clear and explicit, using them could require an excessive effort. For instance, when working on a project a user might come across a potentially useful email address. It is typically much easier to simply add the address to information related to the project than to find selection criteria, according to which the system would be able to automatically generate a “sub-stream” or a document collection that would include the address. Therefore, a potential problem with non-hierarchical architectures is a lack of support for situated and opportunistic work practices and tacit knowledge of a user.
In an earlier work by the author of this invention it was proposed that visual representations of interaction histories can be employed by a user to manually create collections of windows, the so-called “project contexts”, so that each of these collections can be opened, closed, edited, or saved, as a single object [5, 6]. This approach makes it possible to somewhat decrease user's overhead, because a user can work with groups of documents, rather than individual documents, and link them to projects. However, this approach is still associated with significant overhead, because it implies that a user creates and continually maintains project contexts manually.
Therefore, the existing, prior art, computer systems evidently do not provide enough support for users to carry out projects (higher-level activities). More specifically, they do not provide low-overhead support for integrating multiple information hierarchies in the digital work environment.
The disclosed invention addresses this problem by proposing a novel method and apparatus. A computer system based on the disclosed invention was implemented and reported by the author at recent international conferences in the area of Human-Computer Interaction, UIST'02 (Paris, October 2002) and CHI'03 (Ft. Lauderdale, April 2003) [7, 8].